/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.asportoonline.business.delegates;

import java.util.List;
import org.asportoonline.business.beans.PrenotazioneManager;
import org.asportoonline.entities.Cliente;
import org.asportoonline.entities.Locale;
import org.asportoonline.entities.Prenotazione;

/**
 *
 * @author fe
 */
public class PrenotazioneManagerDelegate extends AbstractDelegate implements PrenotazioneManager {

    @Override
    protected String getServiceName() {
        return "java:comp/env/ejb/PrenotazioneManager";
    }

    /**
     * Inserisce una nuova prenotazione.
     * 
     * @param p prenotazione da inserire  
     * @see Prenotazione
     */
    public void inserisciPrenotazione(Prenotazione p) {
        ((PrenotazioneManager)getService()).inserisciPrenotazione(p);
    }

    /**
     * Cerca tutte le Prenotazioni presenti nel database.
     * 
     * @return restituisce una lista contenente tutte le prenotazioni presenti nel database; 
     * se non ce ne sono restituisce null.
     * @see Prenotazione
     */
    public List<Prenotazione> elencoPrenotazioni() {
        return ((PrenotazioneManager)getService()).elencoPrenotazioni();
    }

    /**
     * Cerca tutte le Prenotazioni effettuate da un cliente.
     * 
     * @param cliente Cliente che ha effettuato la Prenotazione.
     * @return restituisce una lista contenente tutte le prenotazioni effettuate dal Cliente  cliente; 
     * se il cliente non esiste o non ha effettuato prenotazioni restituisce null.
     * @see Prenotazione
     * @see Cliente
     */
    public List<Prenotazione> elencoPrenotazioniCliente(Cliente cliente) {
        return ((PrenotazioneManager)getService()).elencoPrenotazioniCliente(cliente);
    }

    /**
     * Cerca tutte le Prenotazioni associate ad un locale.
     * 
     * @param locale 
     * @return restituisce una lista contenente tutte le prenotazioni associate al Locale locale;
     * se il locale non esiste o non ha prenotazioni associate restituisce null.
     * @see Prenotazione
     * @see Locale
     */
    public List<Prenotazione> elencoPrenotazioniLocale(Locale locale) {
        return ((PrenotazioneManager)getService()).elencoPrenotazioniLocale(locale);
    }

    /**
     * Rimuove una prenotazione.
     * 
     * @param prenotazione  
     * @see Prenotazione
     */
    public void eliminaPrenotazione(Prenotazione prenotazione) {
        ((PrenotazioneManager)getService()).eliminaPrenotazione(prenotazione);
    }

    /**
     * Cerca una Prenotazione in base all'ID.
     * 
     * @param idprenotazione  ID della prenotazione.
     * @return se l'ID esiste restituisce la Prenotazione, altrimenti restituisce null.
     * @see Prenotazione
     */
    public Prenotazione cercaPrenotazione(long idPrenotazione) {
        return ((PrenotazioneManager)getService()).cercaPrenotazione(idPrenotazione);
    }
    
}
